#ifdef __cplusplus
extern "C" {
#endif

#ifndef _MODULE_H
#define _MODULE_H

struct module{
    const char name[64];
    int (*init)(void);
    int (*start)(void *);
    int (*run)(void);
    int (*stop)(void);
    int (*exit)(void);
    int (*settarget)(void *target);
    int (*putdata)(void *data, int len, int flag);
};

enum AV_TYPE{
    AVTYPE_NONE,
    AVTYPE_H264,
    AVTYPE_HEVC,
    AVTYPE_MP3,
    AVTYPE_AAC,
    AVTYPE_AC3,
    AVTYPE_MP4,
    AVTYPE_MKV
};

typedef struct _start_param {
    void *file_name;
    int av_type; // 1: h264, 2: hevc, 3: mp3, 4: aac, 5: ac3, 6: mp4, 7: mkv
} start_param_t;

#endif // _MODULE_PCMIN_H

#ifdef __cplusplus
}
#endif
